﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Candy.ViewModel;
using System.Collections.Generic;
using Candy.Web.Data;

namespace Candy.Infrastructure
{
    public interface INavigationService
    {
        void Navigate(string pageName);

        bool CanGoBack { get; }

        void GoBack();

        void ShowMembershipRequestWindow(SendMembershipRequestViewModel vm);
        void CloseMembershipRequestWindow();

        void ShowFamilyEditor(FamilyEditViewModel vm);
        void CloseFamilyEditor();


        void ShowGeneEditor(GeneEditViewModel vm);
        void CloseGeneEditor();

        void ShowPhylogenyEditor(PhylogenyEditViewModel vm);
        void ClosePhylogenyEditor();

        void ShowProjectLoader(ProjectEntityViewModel project);
        void CloseProjectLoader();

        void ShowSecondaryBlast(BlastSecondaryBaitsViewModel dataContext);
        void CloseSecondaryBlast();

        void ShowMoveToFamily(FamilyEditViewModel family);
        void ShowMoveToFamily(IEnumerable<GeneEditViewModel> genes);
        void CloseMoveToFamily();


        void ShowLogin();
        void CloseLogin();

        void ShowRegistration();
        void CloseRegistration();
    }
}
